/**
 * Created by Administrator on 2016/12/28.
 */
var mongo = require('./db');
var multer = require('multer');

function User(user) {
    this.name = user.name;
    this.password = user.password;
    this.email = user.email;
    this.picUrl = user.picUrl;
    this.sign = user.sign;
}
module.exports = User;
User.prototype.save = function (callback) {
    var user = {
        name: this.name,
        password: this.password,
        email: this.email,
        picUrl: this.picUrl,
        sign: this.sign
    };
    mongo.open(function (err, db) {
        if (err) {
            return callback(err)
        }
        //读取users集合
        db.collection('users', function (err, collection) {
            if (err) {
                mongo.close();
                return callback(err)
            }
            collection.insert(user, {safe: true}, function (err, user) {
                mongo.close();
                if (err) {
                    return callback(err)
                }
                return callback(user[0]);
            })
        })
    })
};
//根据名称获取用户信息的get方法,登录
User.get = function (name, callback) {
    //1.打开数据库
    mongo.open(function (err, db) {
        //发生错误的时候
        if (err) {
            return callback(err);
        }
        //2.还是读取users集合
        db.collection('users', function (err, collection) {
            if (err) {
                mongo.close();
                return callback(err);
            }
            //查询用户名
            collection.findOne({name: name}, function (err, user) {
                if (err) {
                    return callback(err);
                }
                callback(null, user);//成功返回查询的用户信息.
            })
        })
    })
};
//个性签名发布头像上传后对users集合进行更新
User.update = function (name, picUrl, sign, callback) {
    mongo.open(function (err, db) {
        if (err) {
            return callback(err);
        }
        db.collection('users', function (err, collection) {
            if (err) {
                return callback(err);
            }
            collection.update({name: name}, {$set: {picUrl: picUrl, sign: sign,}}, {upsert: true});
            //重新查询数据 返回更改过头像的用户数据
            collection.findOne({name: name}, function (err, user) {
                mongo.close();
                if (err) {
                    return callback(err);
                }
                //console.log(user);
                return callback(null, user);
            })
        })
    })
};
module.exports = User;
